﻿namespace Btstack
{
    public partial class Bluetooth
    {
        public const byte ERROR_CODE_SUCCESS = 0x00;
        public const byte ERROR_CODE_UNKNOWN_HCI_COMMAND = 0x01;
        public const byte ERROR_CODE_UNKNOWN_CONNECTION_IDENTIFIER = 0x02;
        public const byte ERROR_CODE_HARDWARE_FAILURE = 0x03;
        public const byte ERROR_CODE_PAGE_TIMEOUT = 0x04;
        public const byte ERROR_CODE_AUTHENTICATION_FAILURE = 0x05;
        public const byte ERROR_CODE_PIN_OR_KEY_MISSING = 0x06;
        public const byte ERROR_CODE_MEMORY_CAPACITY_EXCEEDED = 0x07;
        public const byte ERROR_CODE_CONNECTION_TIMEOUT = 0x08;
        public const byte ERROR_CODE_CONNECTION_LIMIT_EXCEEDED = 0x09;
        public const byte ERROR_CODE_SYNCHRONOUS_CONNECTION_LIMIT_TO_A_DEVICE_EXCEEDED = 0x0A;
        public const byte ERROR_CODE_ACL_CONNECTION_ALREADY_EXISTS = 0x0B;
        public const byte ERROR_CODE_COMMAND_DISALLOWED = 0x0C;
        public const byte ERROR_CODE_CONNECTION_REJECTED_DUE_TO_LIMITED_RESOURCES = 0x0D;
        public const byte ERROR_CODE_CONNECTION_REJECTED_DUE_TO_SECURITY_REASONS = 0x0E;
        public const byte ERROR_CODE_CONNECTION_REJECTED_DUE_TO_UNACCEPTABLE_BD_ADDR = 0x0F;
        public const byte ERROR_CODE_CONNECTION_ACCEPT_TIMEOUT_EXCEEDED = 0x10;
        public const byte ERROR_CODE_UNSUPPORTED_FEATURE_OR_PARAMETER_VALUE = 0x11;
        public const byte ERROR_CODE_INVALID_HCI_COMMAND_PARAMETERS = 0x12;
        public const byte ERROR_CODE_REMOTE_USER_TERMINATED_CONNECTION = 0x13;
        public const byte ERROR_CODE_REMOTE_DEVICE_TERMINATED_CONNECTION_DUE_TO_LOW_RESOURCES = 0x14;
        public const byte ERROR_CODE_REMOTE_DEVICE_TERMINATED_CONNECTION_DUE_TO_POWER_OFF = 0x15;
        public const byte ERROR_CODE_CONNECTION_TERMINATED_BY_LOCAL_HOST = 0x16;
        public const byte ERROR_CODE_REPEATED_ATTEMPTS = 0x17;
        public const byte ERROR_CODE_PAIRING_NOT_ALLOWED = 0x18;
        public const byte ERROR_CODE_UNKNOWN_LMP_PDU = 0x19;
        public const byte ERROR_CODE_UNSUPPORTED_REMOTE_FEATURE_UNSUPPORTED_LMP_FEATURE = 0x1A;
        public const byte ERROR_CODE_SCO_OFFSET_REJECTED = 0x1B;
        public const byte ERROR_CODE_SCO_INTERVAL_REJECTED = 0x1C;
        public const byte ERROR_CODE_SCO_AIR_MODE_REJECTED = 0x1D;
        public const byte ERROR_CODE_INVALID_LMP_PARAMETERS_INVALID_LL_PARAMETERS = 0x1E;
        public const byte ERROR_CODE_UNSPECIFIED_ERROR = 0x1F;
        public const byte ERROR_CODE_UNSUPPORTED_LMP_PARAMETER_VALUE_UNSUPPORTED_LL_PARAMETER_VALUE = 0x20;
        public const byte ERROR_CODE_ROLE_CHANGE_NOT_ALLOWED = 0x21;
        public const byte ERROR_CODE_LMP_RESPONSE_TIMEOUT_LL_RESPONSE_TIMEOUT = 0x22;
        public const byte ERROR_CODE_LMP_ERROR_TRANSACTION_COLLISION = 0x23;
        public const byte ERROR_CODE_LMP_PDU_NOT_ALLOWED = 0x24;
        public const byte ERROR_CODE_ENCRYPTION_MODE_NOT_ACCEPTABLE = 0x25;
        public const byte ERROR_CODE_LINK_KEY_CANNOT_BE_CHANGED = 0x26;
        public const byte ERROR_CODE_REQUESTED_QOS_NOT_SUPPORTED = 0x27;
        public const byte ERROR_CODE_INSTANT_PASSED = 0x28;
        public const byte ERROR_CODE_PAIRING_WITH_UNIT_KEY_NOT_SUPPORTED = 0x29;
        public const byte ERROR_CODE_DIFFERENT_TRANSACTION_COLLISION = 0x2A;
        public const byte ERROR_CODE_RESERVED = 0x2B;
        public const byte ERROR_CODE_QOS_UNACCEPTABLE_PARAMETER = 0x2C;
        public const byte ERROR_CODE_QOS_REJECTED = 0x2D;
        public const byte ERROR_CODE_CHANNEL_CLASSIFICATION_NOT_SUPPORTED = 0x2E;
        public const byte ERROR_CODE_INSUFFICIENT_SECURITY = 0x2F;
        public const byte ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE = 0x30;
        public const byte ERROR_CODE_ROLE_SWITCH_PENDING = 0x32;
        public const byte ERROR_CODE_RESERVED_SLOT_VIOLATION = 0x34;
        public const byte ERROR_CODE_ROLE_SWITCH_FAILED = 0x35;
        public const byte ERROR_CODE_EXTENDED_INQUIRY_RESPONSE_TOO_LARGE = 0x36;
        public const byte ERROR_CODE_SECURE_SIMPLE_PAIRING_NOT_SUPPORTED_BY_HOST = 0x37;
        public const byte ERROR_CODE_HOST_BUSY_PAIRING = 0x38;
        public const byte ERROR_CODE_CONNECTION_REJECTED_DUE_TO_NO_SUITABLE_CHANNEL_FOUND = 0x39;
        public const byte ERROR_CODE_CONTROLLER_BUSY = 0x3A;
        public const byte ERROR_CODE_UNACCEPTABLE_CONNECTION_PARAMETERS = 0x3B;
        public const byte ERROR_CODE_DIRECTED_ADVERTISING_TIMEOUT = 0x3C;
        public const byte ERROR_CODE_CONNECTION_TERMINATED_DUE_TO_MIC_FAILURE = 0x3D;
        public const byte ERROR_CODE_CONNECTION_FAILED_TO_BE_ESTABLISHED = 0x3E;
        public const byte ERROR_CODE_MAC_CONNECTION_FAILED = 0x3F;
        public const byte ERROR_CODE_COARSE_CLOCK_ADJUSTMENT_REJECTED_BUT_WILL_TRY_TO_ADJUST_USING_CLOCK_DRAGGING = 0x40;

        public const byte BTSTACK_EVENT_STATE = 0x60;
        public const byte BTSTACK_EVENT_NR_CONNECTIONS_CHANGED = 0x61;
        public const byte BTSTACK_EVENT_POWERON_FAILED = 0x62;
        public const byte BTSTACK_EVENT_DISCOVERABLE_ENABLED = 0x66;

        public const byte BLUETOOTH_DATA_TYPE_FLAGS = 0x01; // Flags
        public const byte BLUETOOTH_DATA_TYPE_INCOMPLETE_LIST_OF_16_BIT_SERVICE_CLASS_UUIDS = 0x02; // Incomplete List of 16-bit Service Class UUIDs
        public const byte BLUETOOTH_DATA_TYPE_COMPLETE_LIST_OF_16_BIT_SERVICE_CLASS_UUIDS = 0x03; // Complete List of 16-bit Service Class UUIDs
        public const byte BLUETOOTH_DATA_TYPE_INCOMPLETE_LIST_OF_32_BIT_SERVICE_CLASS_UUIDS = 0x04; // Incomplete List of 32-bit Service Class UUIDs
        public const byte BLUETOOTH_DATA_TYPE_COMPLETE_LIST_OF_32_BIT_SERVICE_CLASS_UUIDS = 0x05; // Complete List of 32-bit Service Class UUIDs
        public const byte BLUETOOTH_DATA_TYPE_INCOMPLETE_LIST_OF_128_BIT_SERVICE_CLASS_UUIDS = 0x06; // Incomplete List of 128-bit Service Class UUIDs
        public const byte BLUETOOTH_DATA_TYPE_COMPLETE_LIST_OF_128_BIT_SERVICE_CLASS_UUIDS = 0x07; // Complete List of 128-bit Service Class UUIDs
        public const byte BLUETOOTH_DATA_TYPE_SHORTENED_LOCAL_NAME = 0x08; // Shortened Local Name
        public const byte BLUETOOTH_DATA_TYPE_COMPLETE_LOCAL_NAME = 0x09; // Complete Local Name
        public const byte BLUETOOTH_DATA_TYPE_TX_POWER_LEVEL = 0x0A; // Tx Power Level
        public const byte BLUETOOTH_DATA_TYPE_CLASS_OF_DEVICE = 0x0D; // Class of Device
        public const byte BLUETOOTH_DATA_TYPE_SIMPLE_PAIRING_HASH_C = 0x0E; // Simple Pairing Hash C
        public const byte BLUETOOTH_DATA_TYPE_SIMPLE_PAIRING_HASH_C_192 = 0x0E; // Simple Pairing Hash C-192
        public const byte BLUETOOTH_DATA_TYPE_SIMPLE_PAIRING_RANDOMIZER_R = 0x0F; // Simple Pairing Randomizer R
        public const byte BLUETOOTH_DATA_TYPE_SIMPLE_PAIRING_RANDOMIZER_R_192 = 0x0F; // Simple Pairing Randomizer R-192
        public const byte BLUETOOTH_DATA_TYPE_DEVICE_ID = 0x10; // Device ID
        public const byte BLUETOOTH_DATA_TYPE_SECURITY_MANAGER_TK_VALUE = 0x10; // Security Manager TK Value
        public const byte BLUETOOTH_DATA_TYPE_SECURITY_MANAGER_OUT_OF_BAND_FLAGS = 0x11; // Security Manager Out of Band Flags
        public const byte BLUETOOTH_DATA_TYPE_SLAVE_CONNECTION_INTERVAL_RANGE = 0x12; // Slave Connection Interval Range
        public const byte BLUETOOTH_DATA_TYPE_LIST_OF_16_BIT_SERVICE_SOLICITATION_UUIDS = 0x14; // List of 16-bit Service Solicitation UUIDs
        public const byte BLUETOOTH_DATA_TYPE_LIST_OF_128_BIT_SERVICE_SOLICITATION_UUIDS = 0x15; // List of 128-bit Service Solicitation UUIDs
        public const byte BLUETOOTH_DATA_TYPE_SERVICE_DATA = 0x16; // Service Data
        public const byte BLUETOOTH_DATA_TYPE_SERVICE_DATA_16_BIT_UUID = 0x16; // Service Data - 16-bit UUID
        public const byte BLUETOOTH_DATA_TYPE_PUBLIC_TARGET_ADDRESS = 0x17; // Public Target Address
        public const byte BLUETOOTH_DATA_TYPE_RANDOM_TARGET_ADDRESS = 0x18; // Random Target Address
        public const byte BLUETOOTH_DATA_TYPE_APPEARANCE = 0x19; // Appearance
        public const byte BLUETOOTH_DATA_TYPE_ADVERTISING_INTERVAL = 0x1A; // Advertising Interval
        public const byte BLUETOOTH_DATA_TYPE_LE_BLUETOOTH_DEVICE_ADDRESS = 0x1B; // LE Bluetooth Device Address
        public const byte BLUETOOTH_DATA_TYPE_LE_ROLE = 0x1C; // LE Role
        public const byte BLUETOOTH_DATA_TYPE_SIMPLE_PAIRING_HASH_C_256 = 0x1D; // Simple Pairing Hash C-256
        public const byte BLUETOOTH_DATA_TYPE_SIMPLE_PAIRING_RANDOMIZER_R_256 = 0x1E; // Simple Pairing Randomizer R-256
        public const byte BLUETOOTH_DATA_TYPE_LIST_OF_32_BIT_SERVICE_SOLICITATION_UUIDS = 0x1F; // List of 32-bit Service Solicitation UUIDs
        public const byte BLUETOOTH_DATA_TYPE_SERVICE_DATA_32_BIT_UUID = 0x20; // Service Data - 32-bit UUID
        public const byte BLUETOOTH_DATA_TYPE_SERVICE_DATA_128_BIT_UUID = 0x21; // Service Data - 128-bit UUID
        public const byte BLUETOOTH_DATA_TYPE_LE_SECURE_CONNECTIONS_CONFIRMATION_VALUE = 0x22; // LE Secure Connections Confirmation Value
        public const byte BLUETOOTH_DATA_TYPE_LE_SECURE_CONNECTIONS_RANDOM_VALUE = 0x23; // LE Secure Connections Random Value
        public const byte BLUETOOTH_DATA_TYPE_URI = 0x24; // URI
        public const byte BLUETOOTH_DATA_TYPE_INDOOR_POSITIONING = 0x25; // Indoor Positioning
        public const byte BLUETOOTH_DATA_TYPE_TRANSPORT_DISCOVERY_DATA = 0x26; // Transport Discovery Data
        public const byte BLUETOOTH_DATA_TYPE_LE_SUPPORTED_FEATURES = 0x27; // LE Supported Features
        public const byte BLUETOOTH_DATA_TYPE_CHANNEL_MAP_UPDATE_INDICATION = 0x28; // Channel Map Update Indication
        public const byte BLUETOOTH_DATA_TYPE_PB_ADV = 0x29; // PB-ADV
        public const byte BLUETOOTH_DATA_TYPE_MESH_MESSAGE = 0x2A; // Mesh Message
        public const byte BLUETOOTH_DATA_TYPE_MESH_BEACON = 0x2B; // Mesh Beacon
        public const byte BLUETOOTH_DATA_TYPE_3D_INFORMATION_DATA = 0x3D; // 3D Information Data
        public const byte BLUETOOTH_DATA_TYPE_MANUFACTURER_SPECIFIC_DATA = 0xFF; // Manufacturer Specific Data

        public const byte ATT_ERROR_SUCCESS = 0x00;
        public const byte ATT_ERROR_INVALID_HANDLE = 0x01;
        public const byte ATT_ERROR_READ_NOT_PERMITTED = 0x02;
        public const byte ATT_ERROR_WRITE_NOT_PERMITTED = 0x03;
        public const byte ATT_ERROR_INVALID_PDU = 0x04;
        public const byte ATT_ERROR_INSUFFICIENT_AUTHENTICATION = 0x05;
        public const byte ATT_ERROR_REQUEST_NOT_SUPPORTED = 0x06;
        public const byte ATT_ERROR_INVALID_OFFSET = 0x07;
        public const byte ATT_ERROR_INSUFFICIENT_AUTHORIZATION = 0x08;
        public const byte ATT_ERROR_PREPARE_QUEUE_FULL = 0x09;
        public const byte ATT_ERROR_ATTRIBUTE_NOT_FOUND = 0x0a;
        public const byte ATT_ERROR_ATTRIBUTE_NOT_LONG = 0x0b;
        public const byte ATT_ERROR_INSUFFICIENT_ENCRYPTION_KEY_SIZE = 0x0c;
        public const byte ATT_ERROR_INVALID_ATTRIBUTE_VALUE_LENGTH = 0x0d;
        public const byte ATT_ERROR_UNLIKELY_ERROR = 0x0e;
        public const byte ATT_ERROR_INSUFFICIENT_ENCRYPTION = 0x0f;
        public const byte ATT_ERROR_UNSUPPORTED_GROUP_TYPE = 0x10;
        public const byte ATT_ERROR_INSUFFICIENT_RESOURCES = 0x11;

        public const byte GAP_EVENT_SECURITY_LEVEL = 0xE0;
        public const byte GAP_EVENT_DEDICATED_BONDING_COMPLETED = 0xE1;
        public const byte GAP_EVENT_ADVERTISING_REPORT = 0xE2;
        public const byte GAP_EVENT_INQUIRY_RESULT = 0xE3;
        public const byte GAP_EVENT_INQUIRY_COMPLETE = 0xE4;
        public const byte GAP_EVENT_RSSI_MEASUREMENT = 0xE5;

        public const byte GATT_EVENT_QUERY_COMPLETE = 0xA0;
        public const byte GATT_EVENT_SERVICE_QUERY_RESULT = 0xA1;
        public const byte GATT_EVENT_CHARACTERISTIC_QUERY_RESULT = 0xA2;
        public const byte GATT_EVENT_INCLUDED_SERVICE_QUERY_RESULT = 0xA3;
        public const byte GATT_EVENT_ALL_CHARACTERISTIC_DESCRIPTORS_QUERY_RESULT = 0xA4;
        public const byte GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT = 0xA5;
        public const byte GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT = 0xA6;
        public const byte GATT_EVENT_NOTIFICATION = 0xA7;
        public const byte GATT_EVENT_INDICATION = 0xA8;
        public const byte GATT_EVENT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT = 0xA9;
        public const byte GATT_EVENT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT = 0xAA;
        public const byte GATT_EVENT_MTU = 0xAB;
        public const byte GATT_EVENT_CAN_WRITE_WITHOUT_RESPONSE = 0xAC;

        public const ushort GATT_PRIMARY_SERVICE_UUID = 0x2800;
        public const ushort GATT_SECONDARY_SERVICE_UUID = 0x2801;
        public const ushort GATT_INCLUDE_SERVICE_UUID = 0x2802;
        public const ushort GATT_CHARACTERISTICS_UUID = 0x2803;
        public const ushort GATT_CHARACTERISTIC_EXTENDED_PROPERTIES = 0x2900;
        public const ushort GATT_CHARACTERISTIC_USER_DESCRIPTION = 0x2901;
        public const ushort GATT_CLIENT_CHARACTERISTICS_CONFIGURATION = 0x2902;
        public const ushort GATT_SERVER_CHARACTERISTICS_CONFIGURATION = 0x2903;
        public const ushort GATT_CHARACTERISTIC_PRESENTATION_FORMAT = 0x2904;
        public const ushort GATT_CHARACTERISTIC_AGGREGATE_FORMAT = 0x2905;
        public const ushort GATT_CLIENT_CHARACTERISTICS_CONFIGURATION_NONE = 0;
        public const ushort GATT_CLIENT_CHARACTERISTICS_CONFIGURATION_NOTIFICATION = 1;
        public const ushort GATT_CLIENT_CHARACTERISTICS_CONFIGURATION_INDICATION = 2;
        public const ushort GATT_CLIENT_ANY_CONNECTION = 0xffff;
        public const ushort GATT_CLIENT_ANY_VALUE_HANDLE = 0x0000;
        public const ushort GAP_SERVICE_UUID = 0x1800;
        public const ushort GAP_DEVICE_NAME_UUID = 0x2a00;
        public const ushort GAP_APPEARANCE_UUID = 0x2a01;
        public const ushort GAP_PERIPHERAL_PRIVACY_FLAG = 0x2a02;
        public const ushort GAP_RECONNECTION_ADDRESS_UUID = 0x2a03;
        public const ushort GAP_PERIPHERAL_PREFERRED_CONNECTION_PARAMETERS_UUID = 0x2a04;
        public const ushort GAP_SERVICE_CHANGED = 0x2a05;

        public const ushort HCI_CON_HANDLE_INVALID = 0xffff;

        // packet types - used in BTstack and over the H4 UART interface
        public const byte HCI_COMMAND_DATA_PACKET = 0x01;
        public const byte HCI_ACL_DATA_PACKET = 0x02;
        public const byte HCI_SCO_DATA_PACKET = 0x03;
        public const byte HCI_EVENT_PACKET = 0x04;

        // Events from host controller to host
        public const byte HCI_EVENT_INQUIRY_COMPLETE = 0x01;
        public const byte HCI_EVENT_INQUIRY_RESULT = 0x02;
        public const byte HCI_EVENT_CONNECTION_COMPLETE = 0x03;
        public const byte HCI_EVENT_CONNECTION_REQUEST = 0x04;
        public const byte HCI_EVENT_DISCONNECTION_COMPLETE = 0x05;
        public const byte HCI_EVENT_AUTHENTICATION_COMPLETE = 0x06;
        public const byte HCI_EVENT_AUTHENTICATION_COMPLETE_EVENT = HCI_EVENT_AUTHENTICATION_COMPLETE;
        public const byte HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE = 0x07;
        public const byte HCI_EVENT_ENCRYPTION_CHANGE = 0x08;
        public const byte HCI_EVENT_CHANGE_CONNECTION_LINK_KEY_COMPLETE = 0x09;
        public const byte HCI_EVENT_MASTER_LINK_KEY_COMPLETE = 0x0A;
        public const byte HCI_EVENT_READ_REMOTE_SUPPORTED_FEATURES_COMPLETE = 0x0B;
        public const byte HCI_EVENT_READ_REMOTE_VERSION_INFORMATION_COMPLETE = 0x0C;
        public const byte HCI_EVENT_QOS_SETUP_COMPLETE = 0x0D;
        public const byte HCI_EVENT_COMMAND_COMPLETE = 0x0E;
        public const byte HCI_EVENT_COMMAND_STATUS = 0x0F;
        public const byte HCI_EVENT_HARDWARE_ERROR = 0x10;
        public const byte HCI_EVENT_FLUSH_OCCURRED = 0x11;
        public const byte HCI_EVENT_ROLE_CHANGE = 0x12;
        public const byte HCI_EVENT_NUMBER_OF_COMPLETED_PACKETS = 0x13;
        public const byte HCI_EVENT_MODE_CHANGE = 0x14;
        public const byte HCI_EVENT_RETURN_LINK_KEYS = 0x15;
        public const byte HCI_EVENT_PIN_CODE_REQUEST = 0x16;
        public const byte HCI_EVENT_LINK_KEY_REQUEST = 0x17;
        public const byte HCI_EVENT_LINK_KEY_NOTIFICATION = 0x18;
        public const byte HCI_EVENT_DATA_BUFFER_OVERFLOW = 0x1A;
        public const byte HCI_EVENT_MAX_SLOTS_CHANGED = 0x1B;
        public const byte HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE = 0x1C;
        public const byte HCI_EVENT_CONNECTION_PACKET_TYPE_CHANGED = 0x1D;
        public const byte HCI_EVENT_INQUIRY_RESULT_WITH_RSSI = 0x22;
        public const byte HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE = 0x2C;
        public const byte HCI_EVENT_EXTENDED_INQUIRY_RESPONSE = 0x2F;
        public const byte HCI_EVENT_ENCRYPTION_KEY_REFRESH_COMPLETE = 0x30;
        public const byte HCI_EVENT_IO_CAPABILITY_REQUEST = 0x31;
        public const byte HCI_EVENT_IO_CAPABILITY_RESPONSE = 0x32;
        public const byte HCI_EVENT_USER_CONFIRMATION_REQUEST = 0x33;
        public const byte HCI_EVENT_USER_PASSKEY_REQUEST = 0x34;
        public const byte HCI_EVENT_REMOTE_OOB_DATA_REQUEST = 0x35;
        public const byte HCI_EVENT_SIMPLE_PAIRING_COMPLETE = 0x36;
        public const byte HCI_EVENT_LE_META = 0x3E;
        public const byte HCI_EVENT_VENDOR_SPECIFIC = 0xFF;
        public const byte HCI_SUBEVENT_LE_CONNECTION_COMPLETE = 0x01;
        public const byte HCI_SUBEVENT_LE_ADVERTISING_REPORT = 0x02;
        public const byte HCI_SUBEVENT_LE_CONNECTION_UPDATE_COMPLETE = 0x03;
        public const byte HCI_SUBEVENT_LE_READ_REMOTE_USED_FEATURES_COMPLETE = 0x04;
        public const byte HCI_SUBEVENT_LE_LONG_TERM_KEY_REQUEST = 0x05;
        public const byte HCI_SUBEVENT_LE_REMOTE_CONNECTION_PARAMETER_REQUEST = 0x06;
        public const byte HCI_SUBEVENT_LE_DATA_LENGTH_CHANGE = 0x07;
        public const byte HCI_SUBEVENT_LE_READ_LOCAL_P256_PUBLIC_KEY_COMPLETE = 0x08;
        public const byte HCI_SUBEVENT_LE_GENERATE_DHKEY_COMPLETE = 0x09;
        public const byte HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE = 0x0A;
        public const byte HCI_SUBEVENT_LE_DIRECT_ADVERTISING_REPORT = 0x0B;

        public const byte L2CAP_EVENT_CHANNEL_OPENED = 0x70;
        public const byte L2CAP_EVENT_CHANNEL_CLOSED = 0x71;
        public const byte L2CAP_EVENT_INCOMING_CONNECTION = 0x72;
        public const byte L2CAP_EVENT_TIMEOUT_CHECK = 0x73;
        public const byte L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST = 0x76;
        public const byte L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_RESPONSE = 0x77;
        public const byte L2CAP_EVENT_CAN_SEND_NOW = 0x78;
        public const byte L2CAP_EVENT_LE_INCOMING_CONNECTION = 0x79;
        public const byte L2CAP_EVENT_LE_CHANNEL_OPENED = 0x7a;
        public const byte L2CAP_EVENT_LE_CHANNEL_CLOSED = 0x7b;
        public const byte L2CAP_EVENT_LE_CAN_SEND_NOW = 0x7c;
        public const byte L2CAP_EVENT_LE_PACKET_SENT = 0x7d;
        public const byte L2CAP_EVENT_ERTM_BUFFER_RELEASED = 0x7e;
        public const byte L2CAP_EVENT_TRIGGER_RUN = 0x7f;

        public const byte ATT_EVENT_CONNECTED = 0xB3;
        public const byte ATT_EVENT_DISCONNECTED = 0xB4;
        public const byte ATT_EVENT_MTU_EXCHANGE_COMPLETE = 0xB5;
        public const byte ATT_EVENT_HANDLE_VALUE_INDICATION_COMPLETE = 0xB6;
        public const byte ATT_EVENT_CAN_SEND_NOW = 0xB7;
    }
}
